package com.hup.minicontroller.server.mvp;

import android.media.projection.MediaProjection;

import com.hup.minicontroller.server.hardware.ScreenShotUtil;
import com.hup.minicontroller.server.screenImageService.IScreenDataProcessor;
import com.hup.minicontroller.server.screenImageService.ImageReaderProcessor;
import com.hup.minicontroller.server.screenImageService.MediaProjectionScreenService;

/**
 * 实现获取屏幕图像的服务接口类;
 * .目前实现类只有:{@link MediaProjectionScreenService}
 * .旧版app是通过 {@link ScreenShotUtil} 加子线程轮询实现"获取录屏数据"的
 */
public interface IScreenImageService {

    /**
     * 使用哪种方式接收录屏数据,按需修改方法
     */
    default Class<? extends IScreenDataProcessor> getProcessorType() {
        return ImageReaderProcessor.class;
//        return MediaCodecProcessor.class;
//        return SurfaceViewProcessor.class;
    }

    /**
     * 切换服务状态
     */
    void switchService(boolean isStart);

    /**
     * 处理请求录屏权限的返回结果
     *
     * @param mediaProjection nullable
     */
    void acquireMediaProjectionResult(MediaProjection mediaProjection);

}
